package com.ugoodtech.mdcc.core.service;

import com.ugoodtech.mdcc.core.domain.CustomerRegularReport;
import io.swagger.annotations.ApiParam;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

public interface CustomerService {
    Page<CustomerRegularReport> getCustomerReport(Long loginUserId,
                                                  Pageable pageable,
                                                  @ApiParam("省") @RequestParam(value = "provinces", required = false) String province,
                                                  @ApiParam("类型") @RequestParam(value = "category", required = false) String category,
                                                  @ApiParam("品牌") @RequestParam(value = "brandname", required = false) String brand,
                                                  @ApiParam("维修站名称") @RequestParam(value = "stationName", required = false) String stationName,
                                                  @ApiParam("服务开始时间") @RequestParam(value = "serviceStartTime", required = false) Long serviceStartTime,
                                                  @ApiParam("服务结束时间") @RequestParam(value = "serviceEndTime", required = false) Long serviceEndTime,
                                                  @ApiParam("提交报告时间") @RequestParam(value = "startTime", required = false) Long startTime,
                                                  @ApiParam("提交报告结束时间") @RequestParam(value = "endTime", required = false) Long endTime,
                                                  @ApiParam("外勤人员关键字") @RequestParam(value = "userName", required = false) String userName,
                                                  @ApiParam("满意度打分") @RequestParam(value = "score", required = false) String score,
                                                  @ApiParam("60分以下是否已处理") @RequestParam(value = "isManaged", required = false) String isManaged,
                                                  @ApiParam(value = "维修站编号") @RequestParam(value = "stationNum", required = false) String stationNum,
                                                  @ApiParam(value = "部门ID") @RequestParam(value = "departmentId", required = false) Long departmentId, @ApiParam(value = "客户状态") @RequestParam(value = "customerStat", required = false) String customerStat,
                                                  @ApiParam(value = "客户类型") @RequestParam(value = "customerType", required = false) String customerType,
                                                  @ApiParam(value = "油漆品牌") @RequestParam(value = "paintBrand", required = false) String paintBrand,
                                                  @ApiParam(value = "品牌定位") @RequestParam(value = "productPosition", required = false) String productPosition);

    Page<CustomerRegularReport> getCustomerReport(Long loginUserId,
                                                  Pageable pageable,
                                                  @ApiParam("省") @RequestParam(value = "province", required = false) String province,
                                                  @ApiParam("城市") @RequestParam(value = "city", required = false) String city,
                                                  @ApiParam("类型") @RequestParam(value = "category", required = false) String category,
                                                  @ApiParam("品牌") @RequestParam(value = "brand", required = false) String brand,
                                                  @ApiParam("客户状态ID") @RequestParam(value = "customerStat", required = false) String customerStat,
                                                  @ApiParam("客户类型ID") @RequestParam(value = "customerType", required = false) String customerType,
                                                  @ApiParam("油漆品牌ID") @RequestParam(value = "paintBrand", required = false) String paintBrand,
                                                  @ApiParam("品牌定位ID") @RequestParam(value = "productPosition", required = false) String productPosition,
                                                  @ApiParam("服务项目") @RequestParam(value = "serviceType", required = false) String serviceType,
                                                  @ApiParam("服务次数") @RequestParam(value = "serviceNum", required = false) Integer serviceNum,
                                                  @ApiParam("常规服务报告状态") @RequestParam(value = "reportStatus", required = false) String reportStatus,
                                                  @ApiParam("需跟进报告处理状态") @RequestParam(value = "serviceReportStatus", required = false) String serviceReportStatus,
                                                  @ApiParam("所属部门") @RequestParam(value = "department", required = false) String department,
                                                  @ApiParam("是否填写精益钣喷：true:填写，false:未填写") @RequestParam(value = "paintType", required = false) Boolean paintType,
                                                  @ApiParam("该维修站是否使用我司增值服务") @RequestParam(value = "payService", required = false) String payService,
                                                  @ApiParam("油漆配送时效") @RequestParam(value = "sentTime", required = false) String sentTime,
                                                  @ApiParam("经销商上门服务周期") @RequestParam(value = "serviceTime", required = false) String serviceTime,
                                                  @ApiParam("维修站名称") @RequestParam(value = "stationName", required = false) String stationName,
                                                  @ApiParam("服务开始时间") @RequestParam(value = "serviceStartTime", required = false) Long serviceStartTime,
                                                  @ApiParam("服务结束时间") @RequestParam(value = "serviceEndTime", required = false) Long serviceEndTime,
                                                  @ApiParam("提交报告时间") @RequestParam(value = "startTime", required = false) Long startTime,
                                                  @ApiParam("提交报告结束时间") @RequestParam(value = "endTime", required = false) Long endTime,
                                                  @ApiParam("外勤人员关键字") @RequestParam(value = "userName", required = false) String userName,
                                                  @ApiParam("满意度打分") @RequestParam(value = "score", required = false) String score,
                                                  @ApiParam("是否进行满意度回访") @RequestParam(value = "isManaged", required = false) String isManaged,
                                                  @ApiParam(value = "维修站编号") @RequestParam(value = "stationNum", required = false) String stationNum);
}